using System.IO;
using System.Reflection;
using Comdiv.QueryEngine;

namespace Comdiv.Doc.Test{
    internal static class env{
        public static string input = Path.GetDirectoryName(typeof (env).Assembly.GetName().CodeBase.Replace("file:///",""));
    }


    ///<summary>
    /// type summary
    ///</summary>
    public class TestDocumentedClass{
        /// <summary>
        /// property summary
        /// </summary>
        public string DocumentedPropery { get; set; }
        public static PropertyInfo DocumentedProperyInfo{
            get{
                return typeof (TestDocumentedClass).GetProperty("DocumentedPropery");
            }
        }
        ///<summary>
        /// field summary
        ///</summary>
        public string DocumentedField { get; set; }
        public static FieldInfo DocumentedFieldInfo
        {
            get
            {
                return typeof(TestDocumentedClass).GetField("DocumentedField");
            }
        }
        ///<summary>
        /// method summary
        ///</summary>
        ///<param name="documentedParam">param info</param>
        ///<returns>return info</returns>
        public string GetDocumentedMethod(string documentedParam){
            return "";
        }

        public static MethodInfo GetDocumentedMethodInfo
        {
            get
            {
                return typeof(TestDocumentedClass).GetMethod("GetDocumentedMethod");
            }
        }

        ///<summary>
        ///</summary>
        ///<param name="a"></param>
        ///<param name="b"></param>
        ///<param name="c"></param>
        ///<typeparam name="T"></typeparam>
        ///<returns></returns>
        public string Multiparams<T>(object a, string b, T c){
            return "";
        }

        public static MethodInfo MultiparamsInfo
        {
            get
            {
                return typeof(TestDocumentedClass).GetMethod("Multiparams");
            }
        }



        ///<summary>
        ///</summary>
        ///<param name="param"></param>
        ///<typeparam name="T"></typeparam>
        ///<returns></returns>
        public T GenericMethod<T>(string param){
            return default(T);
        }

        public static MethodInfo GenericMethodInfo
        {
            get
            {
                return typeof(TestDocumentedClass).GetMethod("GenericMethod");
            }
        }


    }
}